package me.zhengjie.modules.management.service;

import me.zhengjie.modules.management.domain.ConferenceRecord;
import me.zhengjie.modules.management.domain.MrRecordDtl;
import me.zhengjie.modules.management.domain.Pageable;
import me.zhengjie.modules.management.service.dto.MrRecordDtlDto;
import me.zhengjie.modules.management.service.dto.RoomCostCriteria;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;
import java.util.Map;

/**
 * @program: eladmin
 * @description: 培训业务逻辑层
 * @author: ming.cao
 * @create: 2020-12-14 19:21
 **/
public interface MrRecordDtlService {
    /**
     * @title: getListById
     * @description: 根据id获取数据
     * @date: 2020/12/15 11:11
     * @author: ming.cao
     * @param recordId
     * @return java.util.List<me.zhengjie.modules.management.service.dto.MrRecordDtlDto>
     * @throws
     */
    Map<String,Object> getListById(Integer recordId, Pageable pageable);

    /**
     * @title: addMrRecordDtl
     * @description: 新增培训明细表
     * @date: 2020/12/14 19:26
     * @author: ming.cao
     * @param dtl
     * @return void
     * @throws
     */
    void addMrRecordDtl(MrRecordDtl dtl);

    /**
     * @title: delMrRecordDtl
     * @description: 删除培训明细
     * @date: 2020/12/14 19:37
     * @author: ming.cao
     * @param ids
     * @return void
     * @throws
     */
    void delMrRecordDtl(List<Integer> ids);

    /**
     * @title: updateMrRecordDtl
     * @description: 更新培训明细
     * @date: 2020/12/16 9:51
     * @author: ming.cao
     * @param dtl
     * @return void
     * @throws
     */
    void updateMrRecordDtl(MrRecordDtl dtl);

    /**
     * @title: settle
     * @description: 结算
     * @date: 2020/12/15 16:16
     * @author: ming.cao
     * @param record
     * @return void
     * @throws
     */
    void settle(ConferenceRecord record);

    /**
     * @title: getCurrentRoomCost
     * @description: 获取当前会议结算时间
     * @date: 2020/12/21 14:55
     * @author: ming.cao
     * @param criteria
     * @return java.util.Map<java.lang.String,java.lang.Object>
     * @throws
     */
    Map<String,Object> getCurrentRoomCost(RoomCostCriteria criteria);
}
